<?php
/**
 * @copyright (C)2016-2099 Hnaoyun Inc.
 * @author XingMeng
 * @email hnxsh@foxmail.com
 * @date 2017年04月17日
 * @MOD Marc 2021-08-03
 *  公司设置控制器 
 */
namespace app\admin\controller\content;

use core\basic\Controller;
use app\admin\model\content\CompanyModel;

class CompanyController extends Controller
{

    private $model;

    public function __construct()
    {
        $this->model = new CompanyModel();
    }

    // 显示公司设置
    public function index()
    {
        if (! ! $submit = post('submit')) {
            switch ($submit) {
                case 'sorting': // 修改列表排序
                    $listall = post('listall');
                    if ($listall) {
                        $sorting = post('sorting');
                        foreach ($listall as $key => $value) {
                            if ($sorting[$key] === '' || ! is_numeric($sorting[$key]))
                                $sorting[$key] = 255;
                            $this->model->modSorting($value, "sorting=" . $sorting[$key]);
                        }
                        $this->log('批量修改字段排序成功！');
                        success('修改成功！', - 1);
                    } else {
                        alert_back('排序失败，无任何内容！');
                    }
                    break;
            }
        } else {
           if ($_POST) {
               foreach ($_POST as $key => $value) {
                   $value = post($key);
                   $this->model->modValue($key, $value);
               }
               $this->log('修改公司信息成功！');
               success('修改成功！', - 1);
           }
           $this->assign('list', true);
           $this->assign('companylist', $this->model->getCompany());
           $this->display('content/company.html'); 
        }
    }

    public function mod()
    {
        if (! $id = get('id', 'int')) {
            error('传递的参数值错误！', - 1);
        }
        
        // 修改操作
        if ($_POST) {
            // 获取数据
            $description = post('description');
            $value = post('value');
            $type = post('type', 'int');
            $sorting = post('sorting', 'int');

            if (! $type) {
                alert_back('字段类型不能为空！');
            }
            
            if (! $description) {
                alert_back('字段描述不能为空！');
            }
            
            // 构建数据
            $data = array(
                'type' => $type,
                'value' => $value,
                'description' => $description,
                'sorting' => $sorting
            );

            // 执行字段记录添加
            if ($this->model->modField($id,$data)) {
                $this->log('修改字段成功！');
                if (! ! $backurl = get('backurl')) {
                    success('修改成功！', base64_decode($backurl));
                } else {
                    success('修改成功！', url('/admin/Company/index'));
                }
            } else {
                $this->log('修改字段失败！');
                error('修改失败！', - 1);
            }
        } else {
            
            // 调取修改内容
            $this->assign('mod', true);
            if (! $result = $this->model->getField($id)) {
                error('编辑的内容已经不存在！', - 1);
            }
            $this->assign('company', $result);
            $this->display('content/company.html');
        }
    }

    // 字段增加
    public function add()
    {
        if ($_POST) {
            // 获取数据
            $name = post('name', 'var');
            $description = post('description');
            $value = post('value');
            $type = post('type', 'int');
            $sorting = post('sorting', 'int');
            
            if (! $name) {
                alert_back('字段名不能为空！');
            }
            
            if (! $type) {
                alert_back('字段类型不能为空！');
            }
            
            if (! $description) {
                alert_back('字段描述不能为空！');
            }
            
            // 构建数据
            $data = array(
                'acode' => session('acode'),
                'name' => $name,
                'type' => $type,
                'value' => $value,
                'description' => $description,
                'sorting' => $sorting
            );
            
            if ($this->model->checkField($name)) { // 字段存在且已使用则 报错
                alert_back('字段已经存在，不能重复添加！');
            }
            
            // 执行字段记录添加
            if ($this->model->addField($data)) {
                $this->log('新增字段成功！');
                if (! ! $backurl = get('backurl')) {
                    success('新增成功！', base64_decode($backurl));
                } else {
                    success('新增成功！', url('/admin/Company/index#tab=t2'));
                }
            } else {
                $this->log('新增字段失败！');
                error('新增失败！', - 1);
            }
        }
    }

    // 字段删除
    public function del()
    {
        if (! $id = get('id', 'int')) {
            error('传递的参数值错误！', - 1);
        }
        
        $name = $this->model->getFieldName($id);
        if ($this->model->delField($id)) {
            $this->log('删除字段' . $id . '成功！');
            success('删除成功！', - 1);
        } else {
            $this->log('删除字段' . $id . '失败！');
            error('删除失败！', - 1);
        }
    }
}